import store from "@/store";
//判断是否有权限
function hasPermission(value, el = false) {
  if (!Array.isArray(value)) {
    throw new Error(`权限配置异常：v-permission value must be an array,like v-permission="['admin,editor']"`);
  }
  // console.log("store.state.user: ",store.state.userInfo)
  const hasAuth = value.findIndex(item => store.state.userInfo.interfaceList.includes(item)) != -1
  // console.log("value: ",value)
  // console.log("hasAuth: ",hasAuth)
  //没有权限则删除元素
  if (el && !hasAuth) {
    el.parentNode && el.parentNode.removeChild(el)
  }

  return hasAuth;
}

export default {
  install(app) {
    // console.log('interceptor installed: ',app);
    //v-permission权限控制
    app.directive('permission', {
      //el: 指令所绑定的元素，可以用来直接操作 DOM 。
      //binding: 一个对象，包含以下 property,v-permission绑定的值为：binding.value。
      mounted(el, binding) {
        console.log('v-permission mounted: ', el, binding);
        //判断binding.value是否在interfaceList中存在，不存在则删除元素
        hasPermission(binding.value, el);
      }
    });
  }
}